package java_thinking.unit_17;

/**
 * @Desc:
 *  使用for循环与使用迭代器iterator的对比
 *
 * 1.采用ArrayList对随机访问比较快，而for循环中的get()方法，采用的即是随机访问的方法，因此在ArrayList里，for循环较快
 *
 * 2.采用LinkedList则是顺序访问比较快，iterator中的next()方法，采用的即是顺序访问的方法，因此在LinkedList里，使用iterator较快
 *
 * 3.从数据结构角度分析,for循环适合访问顺序结构,可以根据下标快速获取指定元素.而Iterator 适合访问链式结构,因为迭代器是通过next()
 *  和Pre()来定位的.可以访问没有顺序的集合.
 *
 * 4.而使用 Iterator 的好处在于可以使用相同方式去遍历集合中元素，而不用考虑集合类的内部实现(只要它实现了 java.lang.Iterable 
 *  接口)，如果使用 Iterator 来遍历集合中元素，一旦不再使用 List 转而使用 Set 来组织数据，那遍历元素的代码不用做任何修改，如果
 *  使用 for 来遍历，那所有遍历此集合的算法都得做相应调整,因为List有序,Set无序,结构不同,他们的访问算法也不一样.
 *
 *  AbstractList 的 SubList是一个典型的内部类引用父类的方法
 * @author: cww
 * @DateTime: 2019/4/25 20:42
 */

public class ListTheory {
    public static void main(String[] args) {

    }
}
